#ifndef _ASYNC_SERVER_H_
#define _ASYNC_SERVER_H_

#include "tcp_server.h"
#include <boost/asio.hpp>

namespace async_server {

using namespace boost;
using namespace boost::asio::ip;

class AsyncSession: public auroral::net::TcpSession
{
public:
	AsyncSession(boost::asio::io_service& io_service);
	virtual ~AsyncSession();
	virtual pointer clone();
protected:
	virtual void process_read();
};

struct PING_INFO
{
	AsyncSession::pointer session;
	std::string message;
};

struct UNDEFINED_MSG_INFO
{
	AsyncSession::pointer session;
	std::string message;
};

}; // namespace async_server

#endif // _ASYNC_SERVER_H_
